//fileio.h
#ifndef FILEIO_H
#define FILEIO_H

#include <QtCore>
//用来打开的保存对应的文件
class FileIO : public QObject
{
    Q_OBJECT
    //定义QML可以访问的属性,定义格式如下
    //Q_PROPERTY(变量类型 访问名称 READ 读方法 WRITE 写方法 NOTIFY 发生变化的通知信号)
    //需要定义在Q_OBJECT之后第一个public之前
    Q_PROPERTY(QUrl source READ source WRITE setSource NOTIFY sourceChanged)
    Q_PROPERTY(QString text READ text WRITE setText NOTIFY textChanged)

    //ui_title是在QML使用的别名,m_title_content是对应的变量名称
    //CONSTANT说明是只读的
    Q_PROPERTY(QString ui_title MEMBER m_title_content CONSTANT)
public:
    FileIO(QObject *parent = 0);
    ~FileIO();

    //定义QML可以访问的方法
    Q_INVOKABLE void read();
    Q_INVOKABLE void write();

    QUrl source() const;
    QString text() const;
public slots:
    void setSource(QUrl source);
    void setText(QString text);
signals:
    void sourceChanged(QUrl arg);
    void textChanged(QString arg);
private:
    QUrl m_file_source;
    QString m_file_content;
    //用来测试的只读title数据
    QString m_title_content;
};

#endif // FILEIO_H
